package org.ponly.lpf4j;

import java.io.File;

/**
 * 插件描述符
 *
 * @author vacoor
 */
public interface PluginDescriptor {

    /**
     * @return plugin id
     */
    String getId();

    /**
     * @return plugin name
     */
    String getName();

    /**
     * @return plugin version
     */
    String getVersion();

    /**
     * @return plugin description
     */
    String getDescription();

    /**
     * @return change notes
     */
    String getChangeNotes();

    /**
     * @return plugin url
     */
    String getUrl();

    String[] getDependentPluginIds();

    String[] getOptionalDependentPluginIds();

    String getEntrance();

    File getPluginRoot();

    boolean isUseCoreClassLoader();

    ClassLoader getPluginClassLoader();

    String getVendor();

    String getVendorLogoPath();

    String getVendorEmail();

    String getVendorUrl();

    String getDownloads();

    String getSinceBuild();

    String getUntilBuild();

    boolean isBundled();

    boolean allowBundledUpdate();

    boolean isEnabled();
}